home *** CD-ROM | disk | FTP | other *** search
- unit Client1A;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, Db, DBTables;
-
- type
- TfrmMain = class(TForm)
- dbMain: TDatabase;
- dsQueryResults: TDataSource;
- grdMatches: TDBGrid;
- memDocument: TDBMemo;
- navMatches: TDBNavigator;
- edtQuery: TEdit;
- Label1: TLabel;
- btnSearch1: TButton;
- lblResults: TLabel;
- qryGetQueryResults: TQuery;
- qryGetSingleRecord: TQuery;
- dsSingleRecord: TDataSource;
- lblDocHeader: TLabel;
- qryGetQueryResultsSpeciesNo: TFloatField;
- qryGetQueryResultsCommon_Name: TStringField;
- qryGetQueryResultsSpeciesName: TStringField;
- btnSearch2: TButton;
- chkViewSQL: TCheckBox;
- memSQL: TMemo;
- radIndex1: TRadioButton;
- radIndex2: TRadioButton;
- procedure btnSearch1Click(Sender: TObject);
- procedure grdMatchesDblClick(Sender: TObject);
- procedure btnSearch2Click(Sender: TObject);
- procedure chkViewSQLClick(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- procedure radIndex1Click(Sender: TObject);
- procedure radIndex2Click(Sender: TObject);
- private
- public
- IndexTable: string;
- end;
-
- var
- frmMain: TfrmMain;
-
- implementation
-
- {$R *.DFM}
-
- uses
- BldSQL;
-
- procedure TfrmMain.FormCreate(Sender: TObject);
- begin
- IndexTable := 'BIOLIFEIDX1';
- with memSQL do begin
- Left := grdMatches.Left;
- Top := grdMatches.Top;
- Width := grdMatches.Width;
- Height := (memDocument.Top - grdMatches.Top) + memDocument.Height;
- end;
- end;
-
- procedure TfrmMain.chkViewSQLClick(Sender: TObject);
- begin
- if chkViewSQL.Checked then begin
- memSQL.Visible := True;
- lblResults.Caption := '&SQL:';
- lblResults.FocusControl := memSQL;
- navMatches.Visible := False;
- end
- else begin
- memSQL.Visible := False;
- lblResults.Caption := '&Results:';
- lblResults.FocusControl := grdMatches;
- navMatches.Visible := True;
- end;
- end;
-
- procedure TfrmMain.radIndex1Click(Sender: TObject);
- begin
- IndexTable := 'BIOLIFEIDX1';
- btnSearch2.Enabled := False;
- end;
-
- procedure TfrmMain.radIndex2Click(Sender: TObject);
- begin
- IndexTable := 'BIOLIFEIDX2';
- btnSearch2.Enabled := True;
- end;
-
- procedure TfrmMain.btnSearch1Click(Sender: TObject);
- begin
- if chkViewSQL.Checked then
- BuildSQL1(edtQuery.Text, IndexTable, memSQL.Lines)
- else with qryGetQueryResults do begin
- DisableControls;
- try
- Close;
- BuildSQL1(edtQuery.Text, IndexTable, SQL);
- Open;
- finally
- EnableControls;
- end;
- end;
- end;
-
- procedure TfrmMain.btnSearch2Click(Sender: TObject);
- var
- Query: string;
- begin
- Query := edtQuery.Text;
- if Copy(Query, 1, 1) <> '"' then
- Query := Format('"%s"', [Query]);
-
- if chkViewSQL.Checked then
- BuildSQL2(Query, IndexTable, memSQL.Lines)
- else with qryGetQueryResults do begin
- DisableControls;
- try
- Close;
- BuildSQL2(Query, IndexTable, SQL);
- Open;
- finally
- EnableControls;
- end;
- end;
- end;
-
- procedure TfrmMain.grdMatchesDblClick(Sender: TObject);
- begin
- if not qryGetQueryResults.FieldByName('Species No').IsNull then
- with qryGetSingleRecord do begin
- DisableControls;
- try
- Close;
- ParamByName('SpeciesNo').AsFloat :=
- qryGetQueryResults.FieldByName('Species No').AsFloat;
- Open;
- lblDocHeader.Caption :=
- Format('%s (%s)', [FieldByName('Common_Name').AsString,
- FieldByName('Species Name').AsString]);
- finally
- EnableControls;
- end;
- end;
- end;
-
- end.
-